package com.yuntuzhilian.chapter5.demo4;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketAddress;

/**
 * @author MrWang-shuizhishuiheshui
 * @description
 */
public class JieShouFang {
    public static void main(String[] args) {

        DatagramPacket dpIn=null;
        DatagramPacket dpOut=null;
        DatagramSocket ds=null;

        try {
            //1.创建DatagramPacket对象,用来准备存放数据报
            byte[] bytes=new byte[1024];
            dpIn=new DatagramPacket(bytes,bytes.length);
            //2.创建DatagramSocket对象,接收数据
            ds=new DatagramSocket(8800);
            //3.用站点接收进来的数据报
            ds.receive(dpIn);
            //显示数据
            String str=new String(dpIn.getData(),0,dpIn.getLength());
            //dpIn.getAddress().getHostAddress() : 从数据报中拿到发送者的地址,并取出ip
            System.out.println(dpIn.getAddress().getHostAddress()+"说:"+str);

            //展示回复内容
            String str1="\"接收方 : 你好,我在,亲,这款产品很不错,吃不死人~~\"";
            System.out.println(str1);

            //从接收的数据报中获取发送方的站点地址,用于下面数据报打包发送的地址
            SocketAddress sa=dpIn.getSocketAddress();
            //创建用于发送的数据报
            dpOut=new DatagramPacket(str1.getBytes(),str1.getBytes().length,sa);
            ds.send(dpOut);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            ds.close();
        }
    }
}
